Searched: \.*
Results from PHP web
PHP-Sat offers the functionality to automatically analyze files which are included with the require_*=/=include_* functions of PHP.

Many projects use some kind of include $prefix.'filename'.$postfix; syntax to make sure that their code can run under multiple configurations. To make sure that these projects can also be analyzed by PHP-Sat we have (partially) included constant-propagation to statically determine which files are included.

Currently, the constant propagation is capable of correctly propagating values through:

  • Operator-expressions
  • Control-flow statements
This means PHP-Sat offers inclusion support for procedural scripts without function calls.

In the future the inclusion-support will be extended to support:

  • Function calls
  • Object creations
as far as static analyzes allows these constructs.
The Nix buildfarm continuously builds PHP-front and PHP-sat packages.

Reports

Reports and logs from the build tasks are available at:

Some more direct links:

This page describes how you can set up your development environment for PHP-Sat/PHP-Front. Most of the information is located elsewhere, if a link is dead please let us know.
This configuration is the same configuration as the one that I am personally using.

Installing Nix

Information about installing NIX is available here.
Note that the manual installation of nix-packages goes more smoothly if you set the permissions in the right way.

Installing Stratego

The simplest way to install everything you need is to use this and this nix-channel.

$ nix-channel --add http://hydra.nixos.org/jobset/nixpkgs/trunk/channel/latest
$ nix-channel --add http://hydra.nixos.org/project/strategoxt/channel/latest
$ nix-channel --update

You can use this command to install all dependencies:

$ nix-env -i aterm-2.5 sdf2-bundle strategoxt strategoxt-utils stratego-shell
Note that the stratego-libraries are not installed, they are for other platforms. And this one to update everything:
$ nix-channel --update 
$ nix-env -u '*'

Installing Autoconf and Libtool

In order to build from source you need to have both the Autoconf and libtool tools installed. If you do not have a copy of them available, you can either install these from the release page of these tools, or through nix:
$ nix-env -i autoconf libtool 

Installing the repositories

The 'php-*' stands for both 'php-front and php-sat'

The first thing that has to be done is the correct setting of the PKG_CONFIG_PATH-variable.

$ export PKG_CONFIG_PATH=~/.nix-profile/lib/pkgconfig
When this is not done the configure script will not find the ATerm, SDF or StrategoXT-files.

The rest of the repository installation is straight-forward, just use the following sequence of commands in the location of your choice.
(The <repository> is https://svn.strategoxt.org/repos)

$ svn checkout <repository>/psat/php-*/trunk ./php-*/
$ cd php-*
$ ./bootstrap
$ ./configure --enable-bootstrap 
$ make
$ make check
$ make install
This sequence gets the latests source-code, configures (the --enable-bootstrap is required!) and builds, checks and installs everything.

Setting up your editor

There are several editor plug-ins for stratego, you can find them here.

There are also highlighters available for Context. There is one for SDF and one for testsuites.

Have fun

Your development environment is ready. If you make anything useful please let us know, happy coding!
There are two mailing lists that you may want to subscribe to.

  • psat-commits -- All SVN-, Jira- and Buildfarm-messages. To stay really up to date.

  • psat-dev -- List for questions and discussions about features or bugs in PHP-SAT

All lists are subscriber post only.

The mailing lists are going to be changed in the future. We will probably migrate to a new URL which is institute-independent. All users will be notified when this change happens.

You can stay up to date with this site by checking out the RSS-feed

The following programming constructs are currently supported by the MCV000-pattern:
  • Operator Expressions
  • Control-flow statements
This means that the security check is capable of analyzing a single procedural script without function calls.

Future versions of this pattern will also support:

  • Function calls
  • Object creation
as far as static analysis allows the support of these constructs

Features

PHP-front is a package you can use to generate, analyse, or transform PHP code. It contains a handcrafted SDF grammar for PHP, a handcrafted pretty printer, an extensive library for reflecting over PHP code, and support for evaluation of PHP.

Some of the unique features of PHP-front are:

  • Modular and extensible syntax definition for PHP for versions 4 and 5
  • Option to preserve comments
  • Pretty printer
  • Automatic inclusion of files
  • PHP-specific, common traversals
  • Reflection support
  • Conversion of abstract syntax tree to XML possible

Tools

Tools that are included in the package are:

  • parse-php
  • parse-php4, parse-php5
  • pp-php
  • pp-php4, pp-php5
  • eval-php

Project Info

Contributors:

  • Eric Bouwers
  • Martin Bravenboer

Feedback and bug reports:

  • Armijn Hemel
  • Tim Hemel
  • Eelco Visser

Sponsors:

  • Google Summer of Code 2006

License:

  • PHP-Front is LGPL (GNU Lesser General Public License) software.

Projects that use PHP-Front

Feb 2008 3910 0 0 364 WebStatistics
260 PhpSat
244 WebRss
217 WebHome
175 PhpFront
135 PhpSatReleases
126 PhpSatDocumentation
124 PhpTools
123 PhpFrontDocumentation
122 PhpSatBugPatterns
113 PhpFrontReleases   Jan 2008 11212 0 0 844 WebRss
775 WebStatistics
698 PhpSat
567 PhpFront
532 WebHome
401 PhpSatReleases
366 PhpSatDocumentation
347 PhpTools
345 PhpFrontReleases
344 PhpFrontDocumentation
327 PhpSatBugPatterns   Dec 2007 7470 1 0 719 WebRss
533 PhpSat
449 WebHome
398 WebStatistics
341 PhpFront
272 PhpTools
259 PhpSatReleases
258 PhpSatBugPatterns
249 PhpSatDocumentation
211 PhpFrontReleases
189 PhpFrontDocumentation   1 EricBouwers Nov 2007 7932 31 0 723 WebRss
671 PhpSat
477 WebHome
409 PhpFront
355 WebStatistics
314 PhpTools
303 PhpSatReleases
284 PhpSatBugPatterns
282 PhpSatDocumentation
256 PhpFrontDocumentation
240 PhpFrontReleases  31 EricBouwers Oct 2007 6669 0 0 540 PhpSat
497 WebStatistics
370 WebHome
341 PhpFront
265 PhpSatReleases
241 PhpFrontDocumentation
230 PhpSatDocumentation
219 WebRss
219 PhpTools
214 PhpSatBugPatterns
203 WebSearch   Sep 2007 7304 1 0 870 WebStatistics
526 WebHome
447 PhpSat
349 PhpTools
329 PhpFront
249 TheExampleProject
239 PhpFrontReleases
233 PhpFrontDocumentation
224 PhpSatReleases
215 PhpSatDocumentation
194 PhpSatBugPatterns   1 EricBouwers Aug 2007 9443 1 0 1861 WebStatistics
625 PhpSat
405 WebHome
383 PhpFront
307 PhpTools
284 PhpFrontDocumentation
283 PhpSatReleases
271 PhpSatDocumentation
259 TheExampleProject
243 PhpSatBugPatterns
242 ThankYou   1 EricBouwers Jul 2007 12261 0 0 975 WebStatistics
683 PhpSat
654 WebHome
527 PhpFront
440 PhpFrontDocumentation
426 PhpSatReleases
407 PhpSatDocumentation
396 PhpFrontReleases
395 PhpTools
358 TheExampleProject
315 ThankYou   Jun 2007 7927 24 0 535 PhpSat
523 WebHome
394 PhpFront
320 PhpFrontDocumentation
314 PhpSatDocumentation
302 PhpSatBugPatterns
289 WebStatistics
276 PhpSatReleases
269 PhpFrontReleases
267 WebRss
237 PhpSatGettingStarted  24 EricBouwers May 2007 5916 4 0 465 WebStatistics
380 PhpSat
329 WebHome
323 PhpFront
242 PhpFrontDocumentation
230 PhpSatDocumentation
222 PhpSatReleases
207 WebRss
195 PhpFrontReleases
191 PhpSatBugPatterns
158 PhpTools   4 EricBouwers Apr 2007 5100 0 0 342 WebStatistics
292 WebHome
266 PhpSat
257 PhpFront
199 PhpFrontReleases
190 PhpFrontDocumentation
180 PhpSatReleases
173 WebRss
171 PhpSatDocumentation
154 PhpSatBugPatterns
133 PhpFrontQuality   Mar 2007 5218 38 1 512 WebStatistics
337 WebHome
333 PhpSat
298 PhpFront
227 PhpFrontDocumentation
213 PhpFrontReleases
193 PhpSatDocumentation
190 PhpSatReleases
189 PhpSatBugPatterns
179 WebRss
144 PhpFrontQuality  32 MartinBravenboer
  7 EricBouwers Feb 2007 4770 19 1 524 WebStatistics
305 PhpSat
288 WebHome
269 PhpFront
208 PhpFrontDocumentation
175 WebRss
168 PhpFrontReleases
158 PhpSatBugPatterns
148 PhpSatDocumentation
140 PhpFrontQuality
137 PhpSatReleases  20 EricBouwers Jan 2007 4380 39 0 328 WebStatistics
270 PhpSat
263 WebHome
251 PhpFront
184 PhpFrontDocumentation
150 PhpSatReleases
149 WebRss
146 PhpSatDocumentation
136 PhpSatBugPatterns
129 PhpFrontReleases
121 PhpFrontQuality  39 EricBouwers Dec 2006 2716 36 0 236 PhpSat
225 WebHome
178 PhpFront
135 WebStatistics
124 PhpSatDocumentation
111 PhpSatReleases
102 PhpFrontDocumentation
 96 PhpFrontReleases
 93 WebRss
 89 PhpFrontQuality
 85 WebLeftBar  36 EricBouwers Nov 2006 1804 6 0 212 WebHome
173 PhpSat
163 PhpFront
 89 PhpSatName
 84 WebStatistics
 70 PhpSatDocumentation
 62 WebRss
 60 PhpSatReleases
 57 PhpFrontDocumentation
 56 PhpSatBugPatterns
 56 PhpSatOrigin   6 EricBouwers Oct 2006 1396 11 0 165 WebHome
110 PhpSat
 79 PhpFront
 52 PhpFrontDocumentation
 51 PhpSatName
 50 PhpSatDocumentation
 49 PhpSatOrigin
 48 PhpSatReleases
 46 WebLeftBar
 44 WebChanges
 44 MailingList  11 EricBouwers Sep 2006 931 71 3 190 WebHome
118 PhpSat
 86 PhpFront
 37 PhpSatReleases
 34 WebLeftBar
 31 WebChanges
 30 PhpFrontOrigin
 28 PhpSatLogo
 25 PhpFrontDocumentation
 25 WebPreferences
 25 MailingList  52 EricBouwers
 22 MartinBravenboer

Notes:

  • Do not edit this topic, it is updated automatically. (You can also force an update)
  • TWikiDocumentation tells you how to enable the automatic updates of the statistics.
  • Suggestion: You could archive this topic once a year and delete the previous year's statistics from the table.
Finding topics

Tracking activity

Look and feel

  • WebPreferences: values of variables
  • WebContents?: web specific entries in the side bar

Number of topics: 53